import { createRouter, createWebHistory } from 'vue-router'
import LoginPage from '@/components/LoginPage.vue'
import DashboardPage from '@/components/DashboardPage.vue'

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: '/',
      name: 'login',
      component: LoginPage
    },
    {
      path: '/dashboard',
      name: 'dashboard',
      component: DashboardPage,
      meta: { requiresAuth: true } // 添加 meta 属性,表示需要登录
    }
  ]
})

// 添加路由守卫
router.beforeEach((to, from, next) => {
  const token = localStorage.getItem('token')
  if (to.matched.some(record => record.meta.requiresAuth)) {
    if (!token) {
      // 如果用户未登录(token不存在),重定向到登录页面
      next({ path: '/', query: { redirect: to.fullPath } })
    } else {
      // 如果用户已登录(token存在),允许进入仪表盘页面
      next()
    }
  } else {
    if (to.path === '/' && token) {
      // 如果用户已登录(token存在)且访问的是登录页面,重定向到仪表盘页面
      next({ path: '/dashboard' })
    } else {
      // 如果目标路由不需要登录,直接允许进入
      next()
    }
  }
})

export default router
